#pragma once
#include "Video.h"

namespace Reign
{namespace Video
{namespace D3D10
{
	public ref class BlendStateDesc : BlendStateDescI
	{
		#pragma region Properties
		private: D3D10_BLEND_DESC* desc;
		public: property D3D10_BLEND_DESC* Desc {D3D10_BLEND_DESC* get();}
		#pragma endregion

		#pragma region Constructors
		public: BlendStateDesc(BlendStateTypes type);
		public: ~BlendStateDesc();
		private: void null();
		#pragma endregion
	};

	public ref class BlendState : Disposable, BlendStateI
	{
		#pragma region Fields
		private: Video^ video;
		private: ID3D10BlendState* blendState;
		#pragma endregion
	
		#pragma region Constructors
		public: BlendState(DisposableI^ parent, BlendStateDescI^ blendDesc);
		public: ~BlendState();
		private: void null();
		#pragma endregion
		
		#pragma region Methods
		public: virtual void Enable();
		#pragma endregion
	};
}
}
}